Έχω ένα όνομα στατιστικού πίνακα ως μήλο Χ μπανάνα Γ Ακτινίδια ζ Πρέπει να βάλω μήλο, μπανάνα και ακτινίδιο σε μια σειρά Φρούτα και X, Y και Z σε μια σειρά που ονομάζεται αλφάβητα. Οποιοσδήποτε απλός μηχανισμός C # για αυτό;
Χρησιμοποιήστε το IEnumerable. Όπου υπερφόρτωση που παρέχει το ευρετήριο. var fruit = statsname.Where ((s, i) => i% 2 == 0). ToArray (); var alphabets = statsname.Where ((s, i) => i% 2! = 0). ToArray (); | Κλέβεται από τον τρόπο λήψης εναλλακτικών στοιχείων χρησιμοποιώντας το Enumerable σε C # var φρούτα = myArray. Πού ((t, i) => i% 2 == 0). ToArray (); var alphabets = myArray. Πού ((t, i) => i% 2 == 1). ToArray (); | Αν κατάλαβα ότι ρωτάτε σωστά τι θέλετε είναι πολύ απλό: Θέλετε να βάλετε φρούτα σε σειρά φρούτων και ίδια για αλφάβητα και εμφανίζονται εναλλακτικά σε όνομα στατιστικού πίνακα, έτσι: για (int i = 0, j = 0; i list = new List () {"apple", "X", "banana", "Y", "Kiwi", "z"} var result = list. Επιλέξτε ((l, i) => νέο {l, i}) .GroupBy (p => p.i% 2) . Επιλέξτε (x => x. Επιλέξτε (v => v.l). ToList ()) .ToList (); Τότε έχετε μια λίστα με λίστες: | λίστα fruit = new List (); λίστα alphabet = new List (); για (int i = 0; i EveryOther (IEnumerable συλλογή) { χρησιμοποιώντας (var e = collection.GetEnumerator ()) { ενώ (e.MoveNext ()) { απόδοση απόδοσης e.Current; e.MoveNext (); // παραλείψτε ένα } } } Μπορείτε να χρησιμοποιήσετε το System.Linq.Skip για να παραλείψετε το πρώτο στοιχείο. string [] words = "apple X banana Y Kiwi z". Split (); var φρούτα = EveryOther (λέξεις); var alphabets = EveryOther (λέξεις. Παράλειψη (1)); Απλώς χρησιμοποιήστε τα ως νέα συλλογή ή καλέστε .ToArray () ή .ToList () σε αυτά: μπροστινό (χορδή f σε φρούτα) Κονσόλα.WriteLine (f); string [] anArray = φρούτα.ToArray (); // χρησιμοποιώντας το System.Linq Τώρα έχετε ό, τι χρειάζεστε. Οι επαναληπτές είναι μέθοδοι που αποδίδουν απόδοση, βλέπε Iterators (C # Programming Guide) Αυτό είναι ένα πολύ δυνατό χαρακτηριστικό της γλώσσας. Μπορείς: παράλειψη στοιχείων διακοσμήστε στοιχεία αλλαγή παραγγελίας αλληλουχίες συνένωσης (βλέπε System.Linq.Concat) ... | Ακολουθεί κάποιος κωδικός εργασίας, ελπίζουμε ότι θα σας βοηθήσει: χρησιμοποιώντας το Σύστημα; χρησιμοποιώντας System.Collections.Generic; χρησιμοποιώντας το System.IO; χρησιμοποιώντας το System.Linq; χρησιμοποιώντας το System.Text; χρησιμοποιώντας το System.Threading.Tasks; namespace ReadFile { Πρόγραμμα τάξης { static void ReadFile (string filePath, List custumerNames, List αριθμοί τηλεφώνου) { string line = string. Κενό; var fileStream = νέο StreamReader (filePath); bool isPhoneNumber = true; ενώ ((line = fileStream.ReadLine ())! = null) { εάν (isPhoneNumber) { phoneNumbers.Add (Μετατροπή.ToInt32 (γραμμή)); isPhoneNumber = false; } αλλού { custumerNames.Προσθήκη (γραμμή); isPhoneNumber = true; } } fileStream.Close (); } static void Main (συμβολοσειρά [] args) { Console.WriteLine ("Άρχισε να διαβάζει το αρχείο ..."); Λίστα custumersNamesList = νέα λίστα (); Λίστα custumersPhonesNumbers = νέα λίστα (); ReadFile ("SampleFile.txt", custumersNamesList, custumersPhonesNumbers); // Υποθέτοντας ότι και οι δύο στη λίστα έχουν το ίδιο μήκος. για (int i = 0; i